package com.chaochis.wind.service;

import com.chaochis.wind.common_exceptions.not_exist_exception.UserNotExistException;
import com.chaochis.wind.vo.WindAccount;
import com.chaochis.wind.vo.WindUser;

import java.util.List;

/**
 * @author 刘超
 * @version 1.0.0
 * 该类定义windUser风旅用户表的操作接口
 */
public interface WindUserService {
    /**
     * 获取风旅用户列表
     * @param windUser 要查询的风旅用户参数
     */
    public List<WindUser> getWindUserList(WindUser windUser);

    /**
     * 添加风旅用户
     * @param windUser 要添加的风旅用户
     */
    public void addWindUser(WindUser windUser);

    /**
     * 修改用户的基本信息
     * @param windUser 要修改用户信息
     */
    public void updateWindUserInfo(WindUser windUser);
    
    /**
     * 删除用户(包含物理删除与逻辑删除)
     * @param id 用户id
     */
    public void deleteWindUser(String id) throws Exception;

    /**
     * 通过token获取用户
     * @param token token令牌
     * @return 返回取出得用户
     */
    public WindUser getTempUserInfoByToken(String token);

    /**
     * 缓存一个用户对象
     * @param token token令牌
     * @param windUser 要缓存得用户
     */
    void saveTempUserInfoByToken(String token, WindUser windUser);

    /**
     * 取出某个用户绑定得登录账号
     * @param userId 用户得userId
     * @return 绑定得账号列表
     */
    List<WindAccount> getAccountsFromUserId(String userId);
    
    /**
     * 激活某用户或还原某被逻辑删除的用户
     * @param id 用户的id
     */
    void activeWindUser(String id) throws Exception;

}
